(function() {
  $(function() {
    var form;
    form = $('form.main');
    form.form({
      inline: true,
      fields: {
        mpos_skey1: {
          optional: false,
          rules: [
            {
              type: 'minLength[32]'
            }, {
              type: 'maxLength[32]'
            }
          ]
        },
        mpos_skey2: {
          optional: false,
          rules: [
            {
              type: 'minLength[32]'
            }, {
              type: 'maxLength[32]'
            }
          ]
        },
        t40_max_amt: ['empty', 'integer[..]']
      }
    });
    form.find('.icon.eyes').click(function() {
      var $input_real, $input_show;
      $input_real = $(this).siblings('input.real');
      $input_show = $(this).siblings('input.show');
      if ($(this).data('hide')) {
        $input_show.val($input_real.val());
        $input_show.removeAttr('readonly');
        $(this).removeClass('unhide').addClass('hide red');
        return $(this).data('hide', false);
      } else {
        $input_real.val($input_show.val());
        $input_show.val($input_real.val() ? '••••••••' : '');
        $input_show.attr('readonly', 'readonly');
        $(this).removeClass('hide red').addClass('unhide');
        return $(this).data('hide', true);
      }
    });
    form.find('.label.decrypt').click(function(evt) {
      var $input_real, $input_show, $label;
      $label = $(this);
      $input_real = $(this).siblings('input.real');
      $input_show = $(this).siblings('input.show');
      if ($label.data('decrypted')) {
        return $.post('/secure/encrypt_ede', {
          key: $input_real.val()
        }, function(resp) {
          if (!resp.succ) {
            return;
          }
          if ($input_real.val() === $input_show.val()) {
            $input_show.val(resp.key);
          }
          $input_real.val(resp.key);
          $label.data('decrypted', false);
          return $label.removeClass('green').addClass('red').text('解 密');
        });
      } else {
        return $.post('/secure/decrypt_ede', {
          key: $input_real.val()
        }, function(resp) {
          if (!resp.succ) {
            return;
          }
          if ($input_real.val() === $input_show.val()) {
            $input_show.val(resp.key);
          }
          $input_real.val(resp.key);
          $label.data('decrypted', true);
          return $label.removeClass('red').addClass('green').text('加 密');
        });
      }
    });
    return form.submit(function(evt) {
      form.find('.icon.eyes').each(function() {
        var $input_real, $input_show;
        if (!$(this).data('hide')) {
          $input_real = $(this).siblings('input.real');
          $input_show = $(this).siblings('input.show');
          return $input_real.val($input_show.val());
        }
      });
      if (!form.form('is valid')) {
        evt.preventDefault();
        form.find('button#ok').removeClass('loading');
        return false;
      }
    });
  });

}).call(this);
